System, method and user interface for network status reporting

ABSTRACT

A method and user interface for informing a user of the status of a network connection are provided. Conventionally, the “connected” icon in the system tray only informs the user that the computer is linked to a network medium, such as an Ethernet or wireless access point. This icon does not indicate whether a routable IP address has been obtained. In this invention, an icon is used to inform the user that the network connection is disabled, connecting, connected (routable IP address obtained), or in a warning state. The warning state indicates that a non-routable IP address (e.g. auto net address) has been obtained, which will likely be unsatisfactory to the user. However, when connected to an 802.11 ad-hoc network, or when IP status checking is disabled, a non-routable IP address is deemed acceptable, and thus the “connected” icon is displayed.

RELATED APPLICATIONS

This application is a continuation of and claims priority to U.S. patentapplication Ser. No. 11/067,016 filed Feb. 28, 2005, which claimspriority to U.S. Provisional Application No. 60/592,526 filed Aug. 2,2004. The disclosures of these applications are incorporated byreference herein in their entirety.

BACKGROUND

A fairly common problem when using a network is to experience a problemgetting to a network resource because the computer did not obtain an IPaddress, or timed out getting an IP address and assigned an “automaticprivate IP address.” Conventionally, the status of the IP address is notused to determine whether the computer is “connected” when the system(as opposed to an application) reports connectivity. Currently,connectivity is determined by whether the interface (the network device)has “media” connected to it, which in wired-Ethernet terms means that acable is plugged in, or in wireless terms means that the device has“associated” with the access point. These are literally the first stepsin a several step process leading to a state where a user can actuallymake use of the network. Despite this, as soon as the media connectstate has been achieved, a user is informed that the computer is“Connected.”

This mismatch between the system's notion of “connected” and the user'snotion of “connected” is the cause of a number of problems. Thedifficulties include the fact that some IP addresses are better thanothers—an address assigned by a DHCP server is far more likely to allowaccess to the resources the user cares about that one assigned by thecomputer itself in the absence of a DHCP server (a non-routable IPaddress such as a link-local IPv4 address). However, the link-localaddress is itself not necessarily a “bad” thing. There are significantcomplexities that make it difficult to determine when a particular IPaddress is good or not. Accordingly, there is a need to provide morerobust reporting of network connection states to a user.

SUMMARY

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used to limit the scope of the claimed subject matter.

A system, methods, and user interface for reporting the status of anetwork connection are provided. In an embodiment, an icon is used toinform the user that the network connection is not connected,connecting, connected (routable IP address obtained), or in a warningstate. The warning state indicates that a non-routable IP address (e.g.autonet address) has been obtained, which will likely be unsatisfactoryto the user. However, when connected to an 802.11 ad-hoc network, orwhen IP status checking is disabled (by the user or administrator), anon-routable IP address is deemed acceptable, and thus the “connected”icon is displayed.

One embodiment of the invention is directed at a method of informing theuser of a network connection status. The method comprises attempting tojoin a network; detecting a state of the attempt; if the computer systemis not connected to a network medium, determining the attempt to be in afirst state; if the computer system has acquired a routable networkaddress, determining the state of the attempt to be in a second state;if the computer system has acquired a non-routable network address,determining the state of the attempt to be in a third state; if theattempt is not in one of the first, second and third states, determiningthe state of the attempt to be in a fourth state; and informing the userof the state of the attempt. Attempting to join a network furthercomprises undergoing an authentication procedure, and if theauthentication procedure fails, determining the state of the attempt tobe in the third state. In keeping with features of the invention, thefirst state is a disconnected state, the second state is a connectedstate, the third state is a warning state, and the fourth state is aconnecting state.

When the state of the attempt is in the warning state, one embodiment ofthe invention informs the user how to repair a problem causing theattempt to be in the warning start. The network may be a wired network,wherein the computer system is connected to a network medium if a wiredphysical connection to the network is detected. The network may be awireless network, wherein the computer system is connected to a networkmedium if the computer system has detected a wireless network. In oneembodiment, the network is a TCP/IP network and the network address isan IPv4 address. When one of IP status checking is disabled on thecomputer system, or the type of 802.11 network is determined to be an“ad-hoc” network, the state of the attempt is determined to be in thesecond state if the computer system is connected to a network medium.

A user may be informed of the state by displaying an icon on a desktopof an operating system. The icon is different for each state. A detectedchange in the state of the attempt is reported to the user by changingthe icon.

Another embodiment of the invention is directed at a user interface forinforming a user of a computer system of a status of a networkconnection. The user interface includes a first icon that is displayedto signify that the network connection is in a first state, wherein thefirst state is a state of not being connected to a network medium; asecond icon that is displayed to signify that the network connection isin a second state, wherein the second state is a state of havingacquired a routable IP address; a third icon that is displayed tosignify that the network connection is in a third state, wherein thethird state is a state of having acquired a non-routable IP address; anda fourth icon that is displayed to signify that the network connectionis in a fourth state, wherein the fourth state is a state of attemptingto connecting to a network. The icon may be displayed in thenotification area (sometimes referred to as the “system tray”). Clickingthe icon launches a dialog box.

Additional features and advantages of the invention are made apparentfrom the following detailed description of illustrative embodiments thatproceeds with reference to the accompanying figures.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings incorporated in and forming a part of thespecification illustrate several aspects of the present invention, andtogether with the description serve to explain the principles of theinvention. In the drawings:

FIG. 1A is a schematic generally illustrating an exemplary networkenvironment across which reporting the status of a network connectionoperates.

FIG. 1B is a block diagram generally illustrating an exemplary computersystem for reporting the status of a network connection.

FIG. 2 is a block diagram illustrating a network status checking systemof reporting the status of a network connection.

FIG. 3 is a diagram illustrating the segmentation of networkconnectivity, as performed reporting the status of a network connection.

FIG. 4 is a flow diagram illustrating a method for detecting whether IPstatus checking is enabled, in accordance with reporting the status of anetwork connection.

FIG. 5 is a flow diagram illustrating a method for determining whether avalid IP address was assigned, in accordance with reporting the statusof a network connection.

FIG. 6 is an overview flow diagram of a network status detecting methodof reporting the status of a network connection.

FIG. 7 is a detailed flow diagram of a network status detecting methodof reporting the status of a network connection.

FIG. 8 illustrates the icons associated with the network connectivitysegmentation performed by reporting the status of a network connection.

FIG. 9 is a diagram illustrating the segmentation of networkconnectivity as it pertains to the user interface of reporting thestatus of a network connection.

FIG. 10 is a screen shot of a status dialog box of reporting the statusof a network connection.

FIG. 11 is a screen shot of a support dialog box of reporting the statusof a network connection.

FIG. 12 is a screen shot of an extended error dialog box of reportingthe status of a network connection.

DETAILED DESCRIPTION

Turning to the drawings, wherein like reference numerals refer to likeelements, reporting the status of a network connection is illustrated asbeing implemented in a suitable computing environment. The followingdescription is based on embodiments of reporting the status of a networkconnection and should not be taken as limiting, with regard toalternative embodiments that are not explicitly described herein.

In the description that follows, reporting the status of a networkconnection is described with reference to acts and symbolicrepresentations of operations that are performed by one or morecomputing devices, unless indicated otherwise. As such, it will beunderstood that such acts and operations, which are at times referred toas being computer-executed, include the manipulation by the processingunit of the computing device of electrical signals representing data ina structured form. This manipulation transforms the data or maintainsthem at locations in the memory system of the computing device, whichreconfigures or otherwise alters the operation of the device in a mannerwell understood by those skilled in the art. The data structures wheredata are maintained are physical locations of the memory that haveparticular properties defined by the format of the data. However, whilethe invention is being described in the foregoing context, it is notmeant to be limiting as those of skill in the art will appreciate thatthe various acts and operations described hereinafter may also beimplemented in hardware.

An example of a networked environment in which the invention may be usedwill now be described with reference to FIG. 1A. The example networkincludes several computers 110 communicating with one another over anetwork 111, represented by a cloud. Network 111 may include manywell-known components, such as routers, gateways, hubs, etc. and allowsthe computers 110 to communicate via wired and/or wireless media. Wheninteracting with one another over the network 111, one or more of thecomputers may act as clients, network servers, or peers with respect toother computers. Accordingly, the various embodiments of the inventionmay be practiced on clients, network servers, peers, or combinationsthereof, even though specific examples contained herein do not refer toall of these types of computers.

FIG. 1B illustrates an example of a suitable computing systemenvironment 100 on which the invention may be implemented. The computingsystem environment 100 is only one example of a suitable computingenvironment and is not intended to suggest any limitation as to thescope of use or functionality of the invention. Neither should thecomputing environment 100 be interpreted as having any dependency orrequirement relating to any one or combination of components illustratedin the exemplary computing environment 100.

The invention is operational with numerous other general-purpose orspecial-purpose computing system environments or configurations.Examples of well known computing systems, environments, andconfigurations that may be suitable for use with the invention include,but are not limited to, personal computers, server computers, hand-heldor laptop devices, multiprocessor systems, microprocessor-based systems,set-top boxes, programmable consumer electronics, network PCs,minicomputers, mainframe computers, distributed computing environmentsthat include any of the above systems or devices, and the like.

The invention may be described in the general context ofcomputer-executable instructions, such as program modules, beingexecuted by a computer. Generally, program modules include routines,programs, objects, components, data structures, etc., that performparticular tasks or implement particular abstract data types. Theinvention may also be practiced in distributed computing environmentswhere tasks are performed by remote processing devices that are linkedthrough a communications network. In a distributed computingenvironment, program modules may be located in both local and remotecomputer-storage media including memory-storage devices.

With reference to FIG. 1B, an exemplary system for implementing theinvention includes a general-purpose computing device in the form of acomputer 110, which may act as a client, network server, quarantineserver, or peer within the context of the invention. Components of thecomputer 110 may include, but are not limited to, a processing unit 120,a system memory 130, and a system bus 121 that couples various systemcomponents including the system memory 130 to the processing unit 120.The system bus 121 may be any of several types of bus structuresincluding a memory bus or memory controller, a peripheral bus, and alocal bus using any of a variety of bus architectures. By way ofexample, and not limitation, such architectures include IndustryStandard Architecture bus, Micro Channel Architecture bus, Enhanced ISAbus, Video Electronics Standards Associate local bus, and PeripheralComponent Interconnect bus, also known as Mezzanine bus.

The computer 110 typically includes a variety of computer-readablemedia. Computer-readable media can be any available media that can beaccessed by the computer 110 and include both volatile and nonvolatilemedia, removable and non-removable media. By way of example, and notlimitation, computer-readable media may include computer storage media.Computer storage media include both volatile and nonvolatile, removableand non-removable media implemented in any method or technology for thestorage of information such as computer-readable instructions, datastructures, program modules, or other data. Computer storage mediainclude, but are not limited to, RAM, ROM, EEPROM, flash memory or othermemory technology, CD-ROM, digital versatile disks or other optical diskstorage, magnetic cassettes, magnetic tape, magnetic disk storage orother magnetic storage devices, or any other medium which can be used tostore the desired information and which can be accessed by the computer110. Communication media typically embody computer-readableinstructions, data structures, program modules, or other data in amodulated data signal such as a carrier wave or other transportmechanism and include any information-delivery media. The term“modulated data signal” means a signal that has one or more of itscharacteristics set or changed in such a manner as to encode informationin the signal. By way of example, and not limitation, communicationmedia include wired media such as a wired network or direct-wiredconnection and wireless media such as acoustic, RF, infrared, and otherwireless media. Combinations of the any of the above should also beincluded within the scope of computer-readable media.

The system memory 130 includes computer storage media in the form ofvolatile and nonvolatile memory such as read only memory (ROM) 131 andrandom access memory (RAM) 132. A basic input/output system 133 (BIOS),containing the basic routines that help to transfer information betweenelements within the computer 110, such as during start-up, is typicallystored in ROM 131. RAM 132 typically contains data and program modulesthat are immediately accessible to or presently being operated on by theprocessing unit 120. By way of example, and not limitation, FIG. 1Billustrates an operating system 134, application programs 135, otherprogram modules 136, and program data 137.

The computer 110 may also include other removable/non-removable,volatile/nonvolatile computer storage media. By way of example only,FIG. 1B illustrates a hard disk drive 141 that reads from or writes tonon-removable, nonvolatile, magnetic media, a magnetic disk drive 151that reads from or writes to a removable, nonvolatile, magnetic disk152, and an optical disk drive 155 that reads from or writes to aremovable, nonvolatile optical disk 156 such as a CD ROM or otheroptical media. Other removable/non-removable, volatile/nonvolatilecomputer storage media that can be used in the exemplary computingenvironment 100 include, but are not limited to, magnetic tapecassettes, flash memory cards, digital versatile disks, digital videotape, solid state RAM, solid state ROM, and the like. The hard diskdrive 141 is typically connected to the system bus 121 through anon-removable memory interface such as the interface 140, and themagnetic disk drive 151 and the optical disk drive 155 are typicallyconnected to the system bus 121 by a removable memory interface, such asthe interface 150.

The drives and their associated computer storage media discussed aboveand illustrated in FIG. 1B provide storage of computer-readableinstructions, data structures, program modules, and other data for thecomputer 110. In FIG. 1B, for example, the hard disk drive 141 isillustrated as storing an operating system 144, application programs145, other program modules 146, and program data 147. Note that thesecomponents can either be the same as or different from the operatingsystem 134, application programs 135, other program modules 136, andprogram data 137. The operating system 144, application programs 145,other program modules 146, and program data 147 are given differentnumbers to illustrate that, at a minimum, they are different copies.

A user may enter commands and information into the computer 110 throughinput devices such as a keyboard 162 and a pointing device 161, commonlyreferred to as a mouse, trackball, or touch pad. Other input devices(not shown) may include a microphone, joystick, game pad, satellitedish, scanner, or the like. These and other input devices are oftenconnected to the processing unit 120 through a user input interface 160that is coupled to the system bus 121, but may be connected by otherinterface and bus structures, such as a parallel port, game port, or auniversal serial bus. A monitor 191 or other type of display device isalso connected to the system bus 121 via an interface, such as a videointerface 190. In addition to the monitor 191, the computer 110 may alsoinclude other peripheral output devices such as speakers 197 and aprinter 196 which may be connected through an output peripheralinterface 195.

The computer 110 operates in a networked environment using logicalconnections to one or more remote computers, such as a remote computer180. The remote computer 180 may be a personal computer, a server, arouter, a network PC, a peer device, or other common network node andtypically includes many or all of the elements described above relativeto the personal computer 110 although only a memory storage device 181has been illustrated in FIG. 1B. The logical connections depicted inFIG. 1B include a local area network (LAN) 171 and a wide area network(WAN) 173 but may also include other networks. Such networkingenvironments are commonplace in offices, enterprise-wide computernetworks, intranets, and the Internet. Furthermore, LAN 171 includesboth wired and wireless connections.

When used in a LAN networking environment, the personal computer 110 isconnected to the LAN 171 through a network interface or adapter 170.When used in a WAN networking environment, the computer 110 typicallyincludes a modem 172 or other means for establishing communications overthe WAN 173, such as the Internet. The modem 172, which may be internalor external, may be connected to the system bus 121 via the user inputinterface 160 or other appropriate mechanism. In a networkedenvironment, program modules depicted relative to the personal computer110, or portions thereof, may be stored in the remote memory storagedevice 181. By way of example, and not limitation, FIG. 1B illustratesthe remote application programs 185 as residing on the memory device181. It will be appreciated that the network connections shown areexemplary, and other means of establishing a communications link betweenthe computers may be used.

The invention relates to methods and user interfaces for reporting thestatus network connections to a user. In one embodiment of theinvention, the methods and user interfaces are included in a computeroperating system (OS). In an exemplary embodiment, the invention isincluded in the Microsoft Windows XP OS. In other embodiments, theinvention is provided as a stand-alone utility that may be installed ontop of an OS.

Through the invention, the status of a network connection is segmentedinto device-specific states, authentication-specific states, andinternet protocol (IP)-specific states. These states are then combined,in view of the computer's network settings configuration and the networkproperties, to determine an overall state that is reported to the user.FIG. 2 illustrates a system diagram of an embodiment of the invention. ANetworking User Interface (NUI) 210 reports the overall state of networkconnections to a user through notification area icons, pop-up balloons,and dialog boxes. The overall state of network connections is providedto the NUI 210 by the Network Connection State Utility (NCSU) 220. TheNCSU 220 detects the device-specific, authentication-specific, andIP-specific states for each installed network adapter. By way ofexample, NCSU 220 uses the Microsoft Windows “SetupDi” call to enumeratethe network adapters installed, and finds Ethernet network adapter 230and wireless network adapter 240. Both Ethernet network adapter 230 andwireless adapter 240 include a Network Driver Interface Specification(NDIS) miniport driver (not shown). NCSU 220 calls NDIS API 270 todetect the device-specific states of Ethernet network adapter 230 andwireless adapter 240. NCSU 220 calls on an API provided byauthentication client 250 to obtain the authentication-specific states.NCSU 220 calls on an API provided by the TCP/IP client 260 to obtain theIP-specific states. In an exemplary embodiment, the authenticationclient 250 is an 802.1x client and the TCP/IP client 260 is a DynamicHost Control Protocol (DHCP) client. NCSU 220 can then determine anoverall state of each network connection managed by the OS using themethods disclosed herein.

The network connectivity state segmentation is described with referenceto FIG. 3. The device-specific states include three states: disabled,network media disconnected, and enabled. When a device (network adapter)is installed, but the driver is stopped, the device state is “DeviceState 0: Disabled.” When the device reports no media connection, thedevice state is “Device State 1: Media Disconnected.” For wired networkconnections this state is reported as: “Network cable unplugged.” Forwireless network connections, this state is reported as: “Notconnected.” When a device reports a network media connection, the devicestate is “Device State 2: Enabled.”

The authentication-specific states include validating identity,authenticating, authentication failed, and authentication successful.These states exist only when an authentication protocol is enabled forthe connection, or, in the case of wireless, enabled for the specificnetwork being to which the supplicant is connecting. In one embodimentof the invention, the authentication protocol is the IEEE 802.1xprotocol. An adapter must be in Device State 2 (Enabled) for thesestates to be used. When the authenticator is asking the user or computerfor information, the authentication state is “Authentication State 1:Validating Identity.” While the authenticator is authenticating thecredentials of the user/computer, the device state is “AuthenticationState 2: Authenticating.” If the credentials are invalid or theauthentication otherwise fails, the authentication state is“Authentication State 3: Authentication Failed.” In the case of wirelessnetworks, this state is short-lived because the authenticator willterminate the connection immediately. In the case of wired networks,this state is considered an error state. When the authenticator reportsthat authentication was successful, the authentication state is“Authentication State 4: Authentication Successful.”

The IP address-specific states include acquiring an IP address, invalidIP address assigned, and valid IP address assigned. These states existonly when IP Status Checking is enabled for an adapter. FIG. 4illustrates a method of one embodiment of the invention for determiningwhether IP Status Checking is enabled for each network adapter. At step410, it is determined whether a group policy is present. If so, it isdetermined whether the group policy blocks the IP status checkingfeature for the user or machine at step 420. If so, then IP StatusChecking is not enabled. Otherwise, if no group policy is present, or ifthe group policy does not block IP Status Checking, then it isdetermined whether IP Status Checking has been manually disabled by theuser through the Network UI at step 430. If so, then IP Status Checkingis not enabled. Otherwise, it is determined whether that TCP/IP isinstalled and bound for the network adapter at step 440. If so, IPStatus Checking is enabled. Otherwise, IP Status Checking is notenabled.

For the IP-specific states to be used, a network adapter must be inDevice State 2 (enabled) and either (a) have 802.1x disabled or (b) bein Authentication State 4 (authentication successful). If the networkadapter is attempting to acquire an IP address, the IP-specific state is“IP State 1: Attempting to acquire an IP address.” In an exemplaryembodiment, the network adapter includes a DHCP client that isattempting to contact a DHCP server to get an IP address. When an IPaddress has been acquired, if the IP address is invalid then theIP-specific state is “IP State 2: Invalid IP address assigned.” When anIP address has been acquired, if the IP address is valid then theIP-specific state is “IP State 3: Valid IP Address Assigned.”

An IP address may be valid or invalid depending on the networkconfiguration settings of the computer and the type of network to whichthe computer is connected. If DHCP is enabled on the computer, thenetwork adapter is in IP State 3: Valid IP Address Assigned if aroutable network address has been assigned by the DHCP server. In anexemplary embodiment, the routable network address is an IPv4 addressroutable outside the subnet of that address. If a routable networkaddress is not assigned, but an alternate static IP configuration isavailable, then the network adapter is also in IP State 3. However, if anon-routable network address is assigned, and no alternate static IPconfiguration exists, then the network adapter is in IP State 2: InvalidIP Address Assigned, unless the network connection is an ad-hoc wirelessconnection. In an exemplary embodiment, the non-routable IP address isan IPv4 link-local address that is not routable outside the subnet ofthe address. In an exemplary embodiment of the invention, the IPv4link-local address is assigned by AutoNet in the Microsoft Windows OS,and is assigned to the 169.254.0.0 network. Though, if DHCP is notenabled, then any IP address is valid, routable or not, and the networkadapter is in IP State 3.

A method of an embodiment of the invention for determining whether an IPaddress is valid is illustrated in FIG. 5. At step 510, it is determinedwhether DHCP is enabled for the network adapter. If not, the IP addressis valid. However if DHCP is enabled, it is determined whether anon-routable IP address has been assigned at step 520. If not, then IPaddress is valid. But if so, it is determined whether the networkconnection is a wired connection at step 530. If so, then the IP addressis invalid. However if the connection is wireless, it is determinedwhether the network adapter is connected to a wirelessInfrastructure-type network at step 540. If so, then the IP address isinvalid. Otherwise, the IP address is valid.

FIG. 6 illustrates an overview of a method for determining the overallstate of a network connection. This method is described in greaterdetail with reference to FIG. 7. A network connection is initiallypresumed to be in the “Disabled” state until the NDIS driver for theconnection reports whether network media are connected to the networkadapter. No icon is shown in the system tray of the OS while in the“Disabled” state. Thus, at step 710, it is determined whether networkmedia have been found. In the case of a wired network connection, anetwork medium is found if a physical connection to a network (forexample, an Ethernet) is detected. In the case of a wireless network, anetwork medium is found if a wireless network adapter is able toassociate with a wireless access point or another wireless device (inthe case of ad-hoc networks). If a network medium is not found for theconnection, the connection is considered to be in the “Not Connected”state, and the “Not Connected” icon is displayed in the system tray. Ifa network medium is found, the connection is considered to be in the“Connecting” state, and the “Connecting” icon is displayed in the systemtray.

At step 720, it is determined whether 802.1x protocol is enabled for theconnection. If not, the method proceeds to step 750. If 802.1x protocolis enabled, the credentials of the user or machine are authenticated atstep 730. At step 740, it is determined whether the authentication wassuccessful. If the authentication failed, the connection is consideredto be in the “Warning” state, and the “Warning” icon is displayed in thesystem tray. If authentication was successful, it is determined at step750 whether IP Status Checking is enabled, as illustrated in FIG. 4. Ifnot, the connection is considered to be in the “Connected” state, andthe “Connection” icon is displayed in the system tray. If IP statuschecking is enabled, an IP is acquired at step 760. At step 770, it isdetermined whether the assigned IP address is valid, as illustrated inFIG. 6. If not, the connection is considered to be in a “Warning” state,and the “Warning” icon is displayed in the system tray. If the IPaddress is valid, then the connection is considered to be in the“Connected” state, and the “Connected” icon is displayed in the systemtray.

Another embodiment of the invention includes waiting for a predeterminedtime period before retrying to acquire an IP address, and delayinginforming the user of a warning state until after retry is attempted.The DHCP client is constantly engaged in trying to contact a DHCP serverduring first connects, during lease renewals, on subnet changes, and soon. Much of this behavior is designed to be “behind the scenes” and doesnot need to be exposed to the user. The UI needs to interpret the DHCPclient state in such a way that the (a) the user is aware what is goingif it is relevant to their usage of the network and (b) they are told asquickly as possible what is going on.

In this embodiment, three pieces of information are made available tothe UI by the DHCP client. That information includes the state of thecurrently assigned IP address, the current state of the DHCP client, anda RetryTime. The state of the IP address may be 1) assigned an automaticprivate IP address (APIPA) (e.g. a non-routable IP address such as anauto net address), which is an address that has been assignedautomatically due to a failure to contact a DHCP server; 2) assigned anon-APIPA, which is a routable IP address (e.g. an address that has beenassigned by a DHCP server) or an alternate static configuration; or 3)no address configured (signified as an IPv4 address of 0.0.0.0).

The current state of the DHCP client, with respect to whether or not isactively attempting to get an IP address or not can be of 1) Done,signifying that the client is not actively doing anything to attempt tochange the current IP address (attempting to get a new address, forexample); 2) Acquiring, signifying that the DHCP client is getting a newIP address; and 3) Renewing, signifying that the DHCP client is renewingthe lease on an existing IP address.

Typically, the combination of the current IP address state and the DHCPclient state are enough to figure out what to show the user. Forexample, if the IP address is zero, and the status is “acquiring”—thatmeans that the UI should show “acquiring”. However, if the IP address iszero, and the Status is “done”, that is considered a failure state. Inone embodiment of the invention, the DHCP client sometimes “sleeps” forvarying periods of time and then wakes up and tries again. For example,if it fails to find a DHCP server, it will assign an APIPA address andthen go to sleep for 2 seconds before trying again. Failing again, itwill try again after 5 minutes. In some embodiments, there are delays of10 seconds or 1 second between retry periods. In order to fulfill thegoals of being both timely and relevant, the present invention is awareof these time periods in order to decide how to treat them.

An embodiment of the invention accomplishes this by further providing anadditional piece of information called RetryTime indicating to the UIhow long the DHCP client intends to wait before trying again. Dependingon how long this delay is, the UI may “gloss” over the wait period bystaying in the acquiring state, or choose to indicate an error.Accordingly, spurious errors are not shown are not shown to the user.Thus, if the DHCP client has acquired an APIPA or zero IP address, anembodiment of the invention delays informing the user of the warningstate until after the RetryTime has elapsed and the retry isunsuccessful. In one embodiment of the invention, the period forRetryTime is 2 seconds, though it will be appreciated by those skilledin the art that period could be chosen.

A UI of an embodiment of the invention will now be described in greaterdetail. FIG. 8 illustrates the notification area icons and which overallstates they report to the user. An icon is shown for each state, and foreach type of connection, wired or wireless. FIG. 9 further illustrateswhen these icons are displayed. Not Connected/Network Cable UnpluggedIcon: this icon is used when the device reports media disconnected.Connecting Icon: this icon is displayed once the connection reaches the“Connecting” state, as shown in FIG. 7, and is displayed until theconnection enters another state. Notably, this icon is displayed whilethe authentication client prompts for credentials. Warning Icon: thisicon is displayed when authentication has failed or when an invalid IPaddress has been assigned. Connected Icon: this icon is used when theconnection reaches the “Connected” state, as shown in FIG. 7.

FIG. 9 further illustrates the status labels associate with each networkconnection as shown in the Network Connections folder of the OS, as wellas the Wireless Networks UI.

The balloon notifications of the UI of the invention are discussed withreference to FIG. 6. Once the connection reaches the “Connected” state,the Connected Balloon appears with the Connected Icon. If the connectionis wired then the balloon states that the named connection is connected.If the connection is wireless with no post-connection procedure enabled,then the balloon states that the named connection is connected, alongwith the name of the network and signal strength. Clicking on theseballoons produces a status dialog box, discussed later. If theconnection is wireless with a post-connection procedure enabled, thenthe balloon states that the named connection is connected, along withthe name of the network, signal strength, and post-connection proceduretext. Clicking on this balloon produces a post-connection procedure webpage. However, once the connection reaches the “Warning” state due to aninvalid IP address, the Warning Balloon is displayed along with theWarning Icon. The Warning Balloon states that the named connection isnot connected due to an invalid IP address, and clicking on this balloonproduces a Support section of status dialog box where the user canattempt to remedy the problem.

When the connection reaches the “Not Connected” state, if the connectionis a wired connection a balloon is displayed stating that the cable isunplugged. If the connection is a wireless connection, the displayedballoon depends upon whether there are visible networks, whether thereare visible networks on that are on a list of preferred networks, andwhether there are manual networks. If the device tried to connect to allthe networks in range, but failed, there are no more networks to try(i.e. none of them are manual), and there is only one network in range,then the balloon states that the device was unable to connect to thefound wireless network but it will keep trying to connect. Clicking onthis balloon launches an extended error dialog. If the device tried toconnect to all the networks in range, but failed, there are no morenetworks to try (i.e. none of them are manual), and there is more thanone network in range, then the balloon states that the device was unableto connect to a wireless network and that the device could not connectto any of the preferred wireless networks but it will keep trying toconnect. When clicked this balloon launches the View Available Networks(VAN) UI.

If the device tried to connect to all the networks that it could, butfailed, there are more networks to try (but they aren't in the preferredlist), and none of them are manual, then the balloon states that thedevice is unable to connect to a preferred wireless network but it willkeep trying to connect. When clicked this balloon launches the VAN UI.If there are networks in range, but none of them are in the preferredlist (but there are networks in the preferred list), then the balloonstates that one or more wireless networks are in range of this computer.When clicked this balloon launches the VAN UI. If there are networks inrange, and the preferred list is empty, then the balloon states that oneor more wireless networks are in range of this computer. When clickedthis balloon launches the VAN UI. If there are no visible wirelessnetworks, then the balloon states that a wireless network is notavailable. When clicked this balloon opens the Network Connectionsfolder.

FIGS. 10, 11, and 12 illustrate the status dialog and extended errordialog boxes of the UI of the invention. The General tab of the statusdialog box in FIG. 10 includes the overall network connection status forthat connection, as well as the name of the network to which theconnection is made. FIG. 11 illustrates the Support tab of the statusdialog box, which gives the user the opportunity to explore the detailsof a “Not Connected” or “Warning” state connection, as well theopportunity to repair the problem. FIG. 12 illustrates the extendederror dialog box that explains to the user in more detail the cause offailed connection where the failure was due to an invalid IP address,failed authentication, or failed association with a wireless network.

FIG. 13 illustrates screenshots of a wireless UI comprised in theinvention. The wireless UI displays each wireless connection along withthe overall connection status and signal strength. If an invalid IPaddress was assigned, authentication failed, or association failed(connection failed), then the overall connection status indicates thefailure and links to an extended error dialog box.

Table 1 indicates the test use for various states in the NetworkConnections folder and the wireless UI.

TABLE 1 State name Status in folder & in Wireless UI Icon TooltipDevice- Disabled Folder: N/A specific Disabled states Main Wireless UI:N/A Enabled - Folder/Wired: Wired: Network cable unplugged. MediaNetwork cable unplugged. Wireless: Not connected. Right- disconnectedFolder/Wireless: click here for more options. Not connected Wireless UI:Manual, Automatic or On demand Enabled Folder: Standard connectedtool-tip (media Enabled (name, speed, network and signal connected) MainWireless UI: strength) Connected Auth- Credentials Validating identityValidating identity, + speed, specific required network and signalstrength states Authenticating Attempting to authenticate Attempting toauthenticate, + speed, network and signal strength AuthenticationAuthentication did not succeed Authentication did not succeed, + failedspeed, network and signal strength Authentication Connected Standardconnected tool-tip success IP- Attempting to Acquiring network addressAcquiring a network address, + specific acquire an IP speed, network andsignal strength address address states Autonet IP Limited or noconnectivity No public network address, + address speed, network andsignal strength assigned IP address Connected Standard connectedtool-tip assigned

CONCLUSION

The foregoing description of various embodiments of the invention hasbeen presented for purposes of illustration and description. It is notintended to be exhaustive or to limit the invention to the preciseembodiments disclosed. Numerous modifications or variations are possiblein light of the above teachings. The embodiments discussed were chosenand described to provide the best illustration of the principles of theinvention and its practical application to thereby enable one ofordinary skill in the art to utilize the invention in variousembodiments and with various modifications as are suited to theparticular use contemplated. All such modifications and variations arewithin the scope of the invention as determined by the appended claimswhen interpreted in accordance with the breadth to which they arefairly, legally, and equitably entitled.

1. A method comprising: initiating a connection attempt to form anetwork connection between a computing device and a communicationsnetwork; ascertaining a device-specific state, anauthentication-specific state, and an internet protocol (IP)-specificstate for the connection attempt; and reporting an overall state of theconnection attempt that combines the device-specific state, theauthentication-specific state, and the IP-specific state.
 2. A method asrecited in claim 1, wherein ascertaining the device-specific state forthe connection attempt comprises making a call to an applicationprogramming interface (API) configured to detect the device-specificstate from a network adapter that is being used by the computing deviceto connect to the communications network.
 3. A method as recited inclaim 1, wherein ascertaining the authentication-specific state for theconnection attempt comprises making a call to an API that corresponds toan authentication client to obtain the authentication-specific state,the authentication client configured to authenticate the networkconnection.
 4. A method as recited in claim 1, wherein ascertaining theIP-specific state for the connection attempt comprises making a call toan API that corresponds to a TCP/IP client to obtain the IP-specificstate, the TCP/IP client configured to assign an IP-address for thenetwork connection.
 5. A method as recited in claim 1, wherein thedevice-specific state for the connection attempt comprises one of: adisabled state, which indicates that a network adapter being used by thecomputing device to connect to the communications network is installed,but a driver corresponding to the network adaptor is stopped; a networkmedia disconnected state, which indicates that a network cable isunplugged if the network connection is a wired connection and that thenetwork adaptor has not formed an association with a wireless devicethat corresponds to the communications network if the network connectionis a wireless connection; and an enabled state, which indicates that anassociation is formed between the network adaptor and the communicationsnetwork.
 6. A method as recited in claim 1, wherein theauthentication-specific state for the connection attempt comprises oneof: a validating identity state, which indicates that an authenticatoris gathering credentials to authenticate the computing device forconnection to the communications network; an authenticating state, whichindicates that the authenticator is authenticating the gatheredcredentials; an authentication failed state, which indicates that theauthenticator determines the gathered credentials to be invalid or thatsaid authenticating failed; and an authentication successful state,which indicates that the authenticator determines the computing deviceto be authenticated.
 7. A method as recited in claim 6, wherein thevalidating identity state, the authenticating state, the authenticationfailed state, and the authentication successful state are useable forthe authentication-specific state when an authentication protocol isenabled for the connection attempt and when a network adapter being usedby the computing device to connect to the communications network isconnected to the communications network.
 8. A method as recited in claim1, wherein the IP-specific state for the connection attempt comprisesone of: an acquiring an IP address state, which indicates that a networkadapter being used by the computing device to connect to thecommunications network is attempting to acquire an IP address; aninvalid IP address assigned state, which indicates that an acquired IPaddress is invalid; and a valid IP address state, which indicates thatthe acquired IP address is valid.
 9. A method as recited in claim 1,wherein ascertaining the IP-specific state includes determining whetherIP Status Checking is enabled for a network adapter being used by thecomputing device to connect to the communications network.
 10. A methodas recited in claim 1, wherein reporting the overall state of theconnection attempt comprises causing a user interface to display atleast one of a notification area icon, a pop-up balloon, and a dialogbox.
 11. A method as recited in claim 1, further comprising detecting achange in at least one of the device-specific state, theauthentication-specific state, and the IP-specific state that causes theoverall state of the connection attempt to change, and reporting thechange of the overall state.
 12. A method as recited in claim 1, whereinthe computing device comprises multiple network adapters configured toconnect to the communications network, and the attempting, ascertaining,and reporting are performed for each of the multiple network adapters.13. One or more computer-readable media comprising computer-executableinstructions that, when executed, cause one or more processing devicesto: attempt to form a network connection with a communications network;ascertain device-specific, authentication-specific, and internetprotocol (IP)-specific states that correspond to the attempt; determinean overall state of the attempt based on a combination of theascertained states; and display a graphical user interface to indicatethe overall state of the attempt.
 14. One or more computer-readablemedia as recited in claim 13, wherein the device-specific,authentication-specific, and IP-specific states are ascertained bymaking calls to one or more application programming interfaces (APIs).15. One or more computer-readable media as recited in claim 13, whereinthe computer-executable instructions further cause the one or moreprocessing devices to withhold an indication that a procedure associatedwith forming the network connection is initially unsuccessful.
 16. Oneor more computer-readable media as recited in claim 13, wherein thecomputer-executable instructions further cause the one or moreprocessing devices to delay indicating that acquiring a valid IPaddress, performed in association with forming the network connection,is unsuccessful until at least two attempts to acquire the valid IPaddress are performed.
 17. One or more computer-readable media asrecited in claim 13, wherein the computer-executable instructionsfurther cause the one or more computing devices to detect a change in atleast one of the device-specific, the authentication-specific, and theIP-specific states that causes the overall state of the attempt tochange, and update the graphical user interface to indicate the changeto the overall state.
 18. A system comprising: one or more processors; anetworking user interface, operable via the one or more processors, thatis configured to report overall states for attempts to form a networkconnection between a computing device and a communications network; anda network connection state utility (NCSU), operable via the one or moreprocessors, that is configured to detect a device-specific state, anauthentication-specific state, and an IP-specific state for each of theattempts, and determine the overall states for the attempts by combiningthe device-specific state, the authentication-specific state, and theIP-specific state for each of the attempts.
 19. A system as recited inclaim 18, wherein the NCSU is configured to detect the device-specificstate, the authentication-specific state, and the IP-specific state foreach of multiple network adapters used by the computing device toconnect to the communications network.
 20. A system as recited in claim18, wherein the NCSU is further configured to make one or moreapplication programming interface (API) calls to detect thedevice-specific state, the authentication-specific state, and theIP-specific state.